##########################################
# No cluster and no standardized outcomes
##########################################

rm(list=ls())

#sink("~/Dropbox/Crime Chile/11_replication/16_rdrobust_nocluster_nostandardized_crime.txt")

library(Hmisc)
library(ggplot2)
library(stargazer)
library(foreign)
library(rdrobust) 
library(rdd)
library(readstata13)

################
# Prepare data 
################

# read data
d = read.dta13("~/Dropbox/Crime Chile/11_replication/local_crime_data_chile_2022january.dta")   
names(d)

############################
# No cluster
############################

# Homicide
summary(rdrobust(d$homicide_rate_s,d$margin,all=TRUE))

# Rape
summary(rdrobust(d$rape_rate_s,d$margin,all=TRUE))

# Assault 
summary(rdrobust(d$assault_rate_s,d$margin,all=TRUE))

# Theft
summary(rdrobust(d$theft_rate_s,d$margin,all=TRUE))

# Robbery
summary(rdrobust(d$robbery_rate_s,d$margin,all=TRUE))

# Robbery by surprise
summary(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE))

############################
# No standardized outcome
############################

# Homicide
summary(rdrobust(d$homicide_rate,d$margin, all=TRUE,cluster = d$cluster))

# Rape
summary(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster))

# Assault 
summary(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster))

# Theft
summary(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster))

# Robbery
summary(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster))

# Robbery by surprise
summary(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster))

############################
# No clusters and no standardized outcome
############################

# Homicide
summary(rdrobust(d$homicide_rate,d$margin, all=TRUE))

# Rape
summary(rdrobust(d$rape_rate,d$margin,all=TRUE))

# Assault 
summary(rdrobust(d$assault_rate,d$margin,all=TRUE))

# Theft
summary(rdrobust(d$theft_rate,d$margin,all=TRUE))

# Robbery
summary(rdrobust(d$robbery_rate,d$margin,all=TRUE))

# Robbery by surprise
summary(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE))

##################
# TABLE A10
##################

# Homicide
summary(rdrobust(d$homicide_rate_s,d$margin,all=TRUE))

pe1 = as.numeric(rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$Estimate[1])
pv1 = as.numeric(rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$pv[3])
ci1 = as.numeric(rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$ci[3,])
oss1 = as.numeric(rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$N[1] + rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$N[2])
ess1 = as.numeric(rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$N_h[1] + rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$N_h[2])
bw1 = as.numeric(rdrobust(d$homicide_rate_s,d$margin,all=TRUE)$bws[1,1])

# Rape
summary(rdrobust(d$rape_rate_s,d$margin,all=TRUE))

pe2 = as.numeric(rdrobust(d$rape_rate_s,d$margin,all=TRUE)$Estimate[1])
pv2 = as.numeric(rdrobust(d$rape_rate_s,d$margin,all=TRUE)$pv[3])
ci2 = as.numeric(rdrobust(d$rape_rate_s,d$margin,all=TRUE)$ci[3,])
oss2 = as.numeric(rdrobust(d$rape_rate_s,d$margin,all=TRUE)$N[1] + rdrobust(d$rape_rate_s,d$margin,all=TRUE)$N[2])
ess2 = as.numeric(rdrobust(d$rape_rate_s,d$margin,all=TRUE)$N_h[1] + rdrobust(d$rape_rate_s,d$margin,all=TRUE)$N_h[2])
bw2 = as.numeric(rdrobust(d$rape_rate_s,d$margin,all=TRUE)$bws[1,1])

# Assault 
summary(rdrobust(d$assault_rate_s,d$margin,all=TRUE))

pe3 = as.numeric(rdrobust(d$assault_rate_s,d$margin,all=TRUE)$Estimate[1])
pv3 = as.numeric(rdrobust(d$assault_rate_s,d$margin,all=TRUE)$pv[3])
ci3 = as.numeric(rdrobust(d$assault_rate_s,d$margin,all=TRUE)$ci[3,])
oss3 = as.numeric(rdrobust(d$assault_rate_s,d$margin,all=TRUE)$N[1] + rdrobust(d$assault_rate_s,d$margin,all=TRUE)$N[2])
ess3 = as.numeric(rdrobust(d$assault_rate_s,d$margin,all=TRUE)$N_h[1] + rdrobust(d$assault_rate_s,d$margin,all=TRUE)$N_h[2])
bw3 = as.numeric(rdrobust(d$assault_rate_s,d$margin,all=TRUE)$bws[1,1])

# Theft
summary(rdrobust(d$theft_rate_s,d$margin,all=TRUE))

pe4 = as.numeric(rdrobust(d$theft_rate_s,d$margin,all=TRUE)$Estimate[1])
pv4 = as.numeric(rdrobust(d$theft_rate_s,d$margin,all=TRUE)$pv[3])
ci4 = as.numeric(rdrobust(d$theft_rate_s,d$margin,all=TRUE)$ci[3,])
oss4 = as.numeric(rdrobust(d$theft_rate_s,d$margin,all=TRUE)$N[1] + rdrobust(d$theft_rate_s,d$margin,all=TRUE)$N[2])
ess4 = as.numeric(rdrobust(d$theft_rate_s,d$margin,all=TRUE)$N_h[1] + rdrobust(d$theft_rate_s,d$margin,all=TRUE)$N_h[2])
bw4 = as.numeric(rdrobust(d$theft_rate_s,d$margin,all=TRUE)$bws[1,1])

# Robbery
summary(rdrobust(d$robbery_rate_s,d$margin,all=TRUE))

pe5 = as.numeric(rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$Estimate[1])
pv5 = as.numeric(rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$pv[3])
ci5 = as.numeric(rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$ci[3,])
oss5 = as.numeric(rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$N[1] + rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$N[2])
ess5 = as.numeric(rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$N_h[1] + rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$N_h[2])
bw5 = as.numeric(rdrobust(d$robbery_rate_s,d$margin,all=TRUE)$bws[1,1])

# Robbery by surprise
summary(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE))

pe6 = as.numeric(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$Estimate[1])
pv6 = as.numeric(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$pv[3])
ci6 = as.numeric(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$ci[3,])
oss6 = as.numeric(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$N[1] + rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$N[2])
ess6 = as.numeric(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$N_h[1] + rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$N_h[2])
bw6 = as.numeric(rdrobust(d$robbery_surprise_rate_s,d$margin,all=TRUE)$bws[1,1])

pe = c(pe1,pe2,pe3,pe4,pe5,pe6)
pv = c(pv1,pv2,pv3,pv4,pv5,pv6)
ci_lower = c(ci1[1],ci2[1],ci3[1],ci4[1],ci5[1],ci6[1])
ci_upper = c(ci1[2],ci2[2],ci3[2],ci4[2],ci5[2],ci6[2])
oss = c(oss1,oss2,oss3,oss4,oss5,oss6)
ess = c(ess1,ess2,ess3,ess4,ess5,ess6)
bw = c(bw1,bw2,bw3,bw4,bw5,bw6)
variable = c("Homicide","Rape","Assault","Theft","Robbery","Robbery by surprise")
data = data.frame(variable,pe,pv,ci_lower,ci_upper,oss,ess,bw)

colnames(data) = c("","Point Estimate","Robust P-value","Robust 95% Confidence Interval lower bound","Robust 95% Confidence Interval upper bound","Overall sample size","Effective sample size","MSE bandwidth")
data

stargazer(data, summary=FALSE, rownames=FALSE, out="~/Dropbox/Crime Chile/11_replication/tableA10.html")

##################
# TABLE A11
##################

# Homicide
summary(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster))

pe1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$Estimate[1])
pv1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$pv[3])
ci1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$ci[3,])
oss1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$N[1] + rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$N[2])
ess1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[1] + rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[2])
bw1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE,cluster = d$cluster)$bws[1,1])

# Rape
summary(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster))

pe2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$Estimate[1])
pv2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$pv[3])
ci2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$ci[3,])
oss2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$N[1] + rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$N[2])
ess2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[1] + rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[2])
bw2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE,cluster = d$cluster)$bws[1,1])

# Assault 
summary(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster))

pe3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$Estimate[1])
pv3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$pv[3])
ci3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$ci[3,])
oss3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$N[1] + rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$N[2])
ess3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[1] + rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[2])
bw3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE,cluster = d$cluster)$bws[1,1])

# Theft
summary(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster))

pe4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$Estimate[1])
pv4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$pv[3])
ci4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$ci[3,])
oss4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$N[1] + rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$N[2])
ess4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[1] + rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[2])
bw4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE,cluster = d$cluster)$bws[1,1])

# Robbery
summary(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster))

pe5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$Estimate[1])
pv5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$pv[3])
ci5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$ci[3,])
oss5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$N[1] + rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$N[2])
ess5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[1] + rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[2])
bw5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE,cluster = d$cluster)$bws[1,1])

# Robbery by surprise
summary(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster))

pe6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$Estimate[1])
pv6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$pv[3])
ci6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$ci[3,])
oss6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$N[1] + rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$N[2])
ess6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[1] + rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$N_h[2])
bw6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE,cluster = d$cluster)$bws[1,1])

pe = c(pe1,pe2,pe3,pe4,pe5,pe6)
pv = c(pv1,pv2,pv3,pv4,pv5,pv6)
ci_lower = c(ci1[1],ci2[1],ci3[1],ci4[1],ci5[1],ci6[1])
ci_upper = c(ci1[2],ci2[2],ci3[2],ci4[2],ci5[2],ci6[2])
oss = c(oss1,oss2,oss3,oss4,oss5,oss6)
ess = c(ess1,ess2,ess3,ess4,ess5,ess6)
bw = c(bw1,bw2,bw3,bw4,bw5,bw6)
variable = c("Homicide","Rape","Assault","Theft","Robbery","Robbery by surprise")
data = data.frame(variable,pe,pv,ci_lower,ci_upper,oss,ess,bw)

colnames(data) = c("","Point Estimate","Robust P-value","Robust 95% Confidence Interval lower bound","Robust 95% Confidence Interval upper bound","Overall sample size","Effective sample size","MSE bandwidth")
data

stargazer(data, summary=FALSE, rownames=FALSE, out="~/Dropbox/Crime Chile/11_replication/tableA11.html")

##################
# TABLE A12
##################

# Homicide
summary(rdrobust(d$homicide_rate,d$margin,all=TRUE))

pe1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE)$Estimate[1])
pv1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE)$pv[3])
ci1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE)$ci[3,])
oss1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE)$N[1] + rdrobust(d$homicide_rate,d$margin,all=TRUE)$N[2])
ess1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE)$N_h[1] + rdrobust(d$homicide_rate,d$margin,all=TRUE)$N_h[2])
bw1 = as.numeric(rdrobust(d$homicide_rate,d$margin,all=TRUE)$bws[1,1])

# Rape
summary(rdrobust(d$rape_rate,d$margin,all=TRUE))

pe2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE)$Estimate[1])
pv2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE)$pv[3])
ci2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE)$ci[3,])
oss2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE)$N[1] + rdrobust(d$rape_rate,d$margin,all=TRUE)$N[2])
ess2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE)$N_h[1] + rdrobust(d$rape_rate,d$margin,all=TRUE)$N_h[2])
bw2 = as.numeric(rdrobust(d$rape_rate,d$margin,all=TRUE)$bws[1,1])

# Assault 
summary(rdrobust(d$assault_rate,d$margin,all=TRUE))

pe3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE)$Estimate[1])
pv3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE)$pv[3])
ci3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE)$ci[3,])
oss3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE)$N[1] + rdrobust(d$assault_rate,d$margin,all=TRUE)$N[2])
ess3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE)$N_h[1] + rdrobust(d$assault_rate,d$margin,all=TRUE)$N_h[2])
bw3 = as.numeric(rdrobust(d$assault_rate,d$margin,all=TRUE)$bws[1,1])

# Theft
summary(rdrobust(d$theft_rate,d$margin,all=TRUE))

pe4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE)$Estimate[1])
pv4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE)$pv[3])
ci4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE)$ci[3,])
oss4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE)$N[1] + rdrobust(d$theft_rate,d$margin,all=TRUE)$N[2])
ess4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE)$N_h[1] + rdrobust(d$theft_rate,d$margin,all=TRUE)$N_h[2])
bw4 = as.numeric(rdrobust(d$theft_rate,d$margin,all=TRUE)$bws[1,1])

# Robbery
summary(rdrobust(d$robbery_rate,d$margin,all=TRUE))

pe5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE)$Estimate[1])
pv5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE)$pv[3])
ci5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE)$ci[3,])
oss5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE)$N[1] + rdrobust(d$robbery_rate,d$margin,all=TRUE)$N[2])
ess5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE)$N_h[1] + rdrobust(d$robbery_rate,d$margin,all=TRUE)$N_h[2])
bw5 = as.numeric(rdrobust(d$robbery_rate,d$margin,all=TRUE)$bws[1,1])

# Robbery by surprise
summary(rdrobust(d$robberyurprise_rate,d$margin,all=TRUE))

pe6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$Estimate[1])
pv6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$pv[3])
ci6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$ci[3,])
oss6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$N[1] + rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$N[2])
ess6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$N_h[1] + rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$N_h[2])
bw6 = as.numeric(rdrobust(d$robbery_surprise_rate,d$margin,all=TRUE)$bws[1,1])

pe = c(pe1,pe2,pe3,pe4,pe5,pe6)
pv = c(pv1,pv2,pv3,pv4,pv5,pv6)
ci_lower = c(ci1[1],ci2[1],ci3[1],ci4[1],ci5[1],ci6[1])
ci_upper = c(ci1[2],ci2[2],ci3[2],ci4[2],ci5[2],ci6[2])
oss = c(oss1,oss2,oss3,oss4,oss5,oss6)
ess = c(ess1,ess2,ess3,ess4,ess5,ess6)
bw = c(bw1,bw2,bw3,bw4,bw5,bw6)
variable = c("Homicide","Rape","Assault","Theft","Robbery","Robbery by surprise")
data = data.frame(variable,pe,pv,ci_lower,ci_upper,oss,ess,bw)

colnames(data) = c("","Point Estimate","Robust P-value","Robust 95% Confidence Interval lower bound","Robust 95% Confidence Interval upper bound","Overall sample size","Effective sample size","MSE bandwidth")
data

stargazer(data, summary=FALSE, rownames=FALSE, out="~/Dropbox/Crime Chile/11_replication/tableA12.html")

sink()

